/**
 * process.nextTick(): 微任务，执行顺序高于promise.then()，当前栈中的同步代码执行完毕后就立即执行
 *  node中也有自己的事件循环，主要是处理i/o操作的机制，从node11.x开始和浏览器的执行顺序基本一致
 *  - timers setInterval 定时器
 *  - poll阶段 轮询，会在特定的时候进行阻塞，执行i/o回调（fs文件读取）
 *  - check setImmediate （每个宏任务执行完毕后都会清空微任务）
 */

setTimeout(function () {
  console.log('timer');
}, 0);

process.nextTick(function () {
  // 当前执行栈中执行完毕后，立即执行
  console.log('nextTick');
});

Promise.resolve().then((res) => {
  console.log('Promise');
});
